package cn.pro.service;

import cn.pro.api.IProAccessService;
import cn.pro.dao.ProAccessDao;
import cn.pro.entity.ProAccess;
import cn.pro.entity.vo.ProAccessVo;
import cn.pro.entity.vo.ProUserVo;
import cn.pro.utils.CheckMsg;
import cn.pro.utils.ObjectUtils;
import cn.pro.utils.PageData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service
public class ProAccessService implements IProAccessService {
    @Autowired
    private ProAccessDao proAccessDao;
    @Override
    public CheckMsg create(ProAccess proAccess) {
        proAccessDao.insert(proAccess);
        if (!ObjectUtils.objectCheckIsNull(proAccess.getTitle())){
            CheckMsg.fail().setMesage("权限添加失败");
        }
        return CheckMsg.success().setMesage("权限添加成功");

    }

    @Override
    public PageData<ProAccessVo> selectList(ProAccess proAccess) {
        List<ProAccessVo> proAccessVoList = proAccessDao.selectList(proAccess);
        return new PageData<ProAccessVo>().startPage(proAccessVoList, proAccess.getPageIndex(), proAccess.getPageSize());
    }

    @Override
    public CheckMsg delete(String accessId) {
        ProAccessVo proUser = proAccessDao.selectById(accessId);
        if (!org.springframework.util.ObjectUtils.isEmpty(proUser)){
            proAccessDao.delById(accessId);
            return CheckMsg.success().setMesage("权限删除成功");
        }else {
            return CheckMsg.fail().setMesage("权限删除失败");
        }
    }

    @Override
    public CheckMsg updateAccess(ProAccess proAccess) {
        ProAccessVo proAccessVo = proAccessDao.selectById(proAccess.getId());
        if (org.springframework.util.ObjectUtils.isEmpty(proAccessVo)){
            proAccess.setUpdateTime(new Date());
            proAccessDao.updateById(proAccess);
        }
        if (!ObjectUtils.objectCheckIsNull(proAccess.getTitle())){
            CheckMsg.fail().setMesage("用户修改失败");
        }
        return CheckMsg.success().setMesage("用户修改成功");
    }

    @Override
    public ProAccessVo selectById(String accessId) {
        ProAccessVo proAccessVo = proAccessDao.selectById(accessId);
        System.out.println("对象："+proAccessVo.toString());
        if (org.springframework.util.ObjectUtils.isEmpty(proAccessVo)){
            return null;
        }
        return proAccessVo;
    }
}
